---
title: چرا Bloc؟
description:
  یک مروری بر ویژگی‌هایی که باعث می‌شود بلاک یک راه حل مدیریت وضعیت قوی باشد.
sidebar:
  order: 1
---

Bloc به شما امکان می‌دهد به راحتی لایه نمایش (Presentation) را از منطق کسب و کار
(Business logic) جدا کنید، که این امر باعث می‌شود, کد شما قابلیت هایی مانند
_سرعت بالا_، _آزمون آسان_ و _قابل استفاده مجدد_ را داشته باشد.

وقتی اپلیکیشن‌های با کیفیت تولید می‌شوند، مدیریت وضعیت (State) به مسئله‌ای حیاتی
تبدیل می‌شود.

ما به عنوان توسعه دهندگان می خواهیم:

- بدانیم درخواست ما در هر مقطع زمانی در چه وضعیتی است.
- به راحتی هر مورد را آزمایش کنیم تا مطمئن شویم برنامه ما به درستی پاسخ می دهد.
- هر تعامل کاربر را در برنامه خود ثبت کنیم تا بتوانیم تصمیمات مبتنی بر داده را
  اتخاذ کنیم.
- به صورت بهینه و کارآمد کار کنیم و اجزای مختلف را, هم در داخل برنامه‌ی خود و هم
  در برنامه‌های دیگر استفاده مجدد کنیم.
- امکان کار همزمان برای چندین توسعه‌دهنده و بدون هیچ مشکلی در یک کد پایه با
  رعایت الگوها و قواعد مشترک، فراهم باشد.
- برنامه های سریع و پاسخگو ایجاد کنیم.

بلاک برای برآورده کردن همه این نیازها و بسیاری دیگر طراحی شده است.

همچنین، راه‌حل‌های مدیریت وضعیت (State Management) مختلفی وجود دارد و تصمیم گیری
برای استفاده از یکی از آن‌ها ممکن است یک وظیفه سخت باشد. هیچ راه‌حل مدیریت
وضعیتی کامل و بی‌نقص وجود ندارد! مهم این است که شما یکی را انتخاب کنید که برای
تیم و پروژه شما بهترین عمل کند.

Bloc با در نظر گرفتن سه ارزش اصلی طراحی شده است:

- **ساده:** ساده درک شود و می‌تواند و توسط توسعه‌دهندگان با سطوح مهارتی متفاوت
  استفاده شود.
- **قدرتمند:** با ترکیب کردن اجزای کوچکتر، به شما کمک می‌کند برنامه‌های
  شگفت‌انگیز و پیچیده‌ای را ایجاد کنید.
- **قابل آزمایش:** با امکان تست آسان و سریع هر جنبه‌ای از برنامه، میتوان با
  اطمینان بیشتری به بهبود و تغییرات نرم‌افزاری پرداخت.

بطور کلی، Bloc سعی می‌کند با تنظیم زمانی که یک تغییر وضعیت می‌تواند رخ دهد و
اجرای یک روش یکتا برای تغییر وضعیت در سراسر برنامه، تغییرات وضعیت را قابل
پیش‌بینی کند.
